#include<iostream>
#include<algorithm>
using namespace std;
int main() {
	int n,m,x,y,v,c,z=-1,f=0;
	cin>>n>>m>>x>>y>>v>>c;
	int a[n][m];
	for(int i=0;i<n;++i){
		for(int j=0;j<m;++j){
			cin>>a[i][j];
		}
	}
	a[x][y]=v;
	//左上 
	for(int i=x;i>=0;--i){
		for(int j=y;j>=0;--j){
			if(i==x&&j==y){
				;
			}
			else if(i==x){
				a[i][j]+=a[i][j+1];
			}
			else if(j==y){
				a[i][j]+=a[i+1][j];
			}
			else{
				a[i][j]+=max(a[i+1][j],a[i][j+1]);
			}
			if(a[i][j]>c)a[i][j]=c;
			if(a[i][j]<=0)f=1;
		}
		if(f){
			break;
		}
	}
	if(!f){
		z=max(z,a[0][0]);
	}
	f=0;
	//右上 
	for(int i=x;i>=0;--i){
		for(int j=y;j<m;++j){
			if(i==x&&j==y){
				;
			}
			else if(i==x){
				a[i][j]+=a[i][j-1];
			}
			else if(j==y){
				a[i][j]+=a[i+1][j];
			}
			else{
				a[i][j]+=max(a[i+1][j],a[i][j-1]);
			}
			if(a[i][j]>c)a[i][j]=c;
			if(a[i][j]<=0)f=1;
		}
		if(f){
			break;
		}
	}
	if(!f){
		z=max(z,a[0][m-1]);
	}
	f=0;
	//左下 
	for(int i=x;i<n;++i){
		for(int j=y;j>=0;--j){
			if(i==x&&j==y){
				;
			}
			else if(i==x){
				a[i][j]+=a[i][j+1];
			}
			else if(j==y){
				a[i][j]+=a[i-1][j];
			}
			else{
				a[i][j]+=max(a[i-1][j],a[i][j+1]);
			}
			if(a[i][j]>c)a[i][j]=c;
			if(a[i][j]<=0)f=1;
		}
		if(f){
			break;
		}
	}
	if(!f){
		z=max(z,a[n-1][0]);
	}
	f=0;
	//右下 
	for(int i=x;i<n;++i){
		for(int j=y;j<m;++j){
			if(i==x&&j==y){
				;
			}
			else if(i==x){
				a[i][j]+=a[i][j-1];
			}
			else if(j==y){
				a[i][j]+=a[i-1][j];
			}
			else{
				a[i][j]+=max(a[i-1][j],a[i][j-1]);
			}
			if(a[i][j]>c)a[i][j]=c;
			if(a[i][j]<=0)f=1;
		}
		if(f){
			break;
		}
	}
	if(!f){
		z=max(z,a[n-1][m-1]);
	}
	cout<<z;
	return 0;
}